#ifndef __PLATFORM_FACTORY_H__
#define __PLATFORM_FACTORY_H__

#include "IPlatform.h"
#include "..\Log.h"

class PlatformFactory
{
private:
	static PlatformFactory * m_pInstance;
	static IPlatform * m_pPlatform;
	PlatformFactory();
public:
	virtual ~PlatformFactory();
	static PlatformFactory * GetInstance();
	static void DestroyInstance();

	//Create platform context
	static IPlatform * CreatePlatform(FWuint id, FWuint iWidth, FWuint iHeight, char * szTitle, FWuint iFlags);
	//Returns the current platform was setup
	IPlatform * GetCurrentPlatform();
};

#endif